package com.jxdinfo.hussar.example.common.schedulingtask.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 生产工单表
 * </p>
 *
 * @author 乔镔
 * @since 2024-04-09
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("pro_workorder")
public class ProWorkorder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 工单ID
     */
    @TableId(value = "workorder_id", type = IdType.AUTO)
    private Long workorderId;

    /**
     * 工单编码
     */
    @TableField("workorder_code")
    private String workorderCode;

    /**
     * 工单名称
     */
    @TableField("workorder_name")
    private String workorderName;

    /**
     * 车间ID
     */
    @TableField("workshop_id")
    private Long workshopId;


    /**
     * 车间编码
     */
    @TableField("workshop_code")
    private String workshopCode;

    /**
     * 车间名称
     */
    @TableField("workshop_name")
    private String workshopName;

    /**
     * 来源类型
     */
    @TableField("order_source")
    private String orderSource;

    /**
     * 来源单据
     */
    @TableField("source_code")
    private String sourceCode;

    /**
     * 产品ID
     */
    @TableField("product_id")
    private Long productId;

    /**
     * 产品编号
     */
    @TableField("product_code")
    private String productCode;

    /**
     * 产品名称
     */
    @TableField("product_name")
    private String productName;

    /**
     * 规格型号
     */
    @TableField("product_spc")
    private String productSpc;

    /**
     * 单位id
     */
    @TableField("measure_id")
    private Long measureId;

    /**
     * 单位名称
     */
    @TableField("unit_of_measure")
    private String unitOfMeasure;

    /**
     * 生产数量
     */
    @TableField("quantity")
    private Double quantity;

    /**
     * 已生产数量
     */
    @TableField("quantity_produced")
    private Double quantityProduced;

    /**
     * 调整数量
     */
    @TableField("quantity_changed")
    private Double quantityChanged;

    /**
     * 已排产数量
     */
    @TableField("quantity_scheduled")
    private Double quantityScheduled;

    /**
     * 客户ID
     */
    @TableField("client_id")
    private Long clientId;

    /**
     * 客户编码
     */
    @TableField("client_code")
    private String clientCode;

    /**
     * 客户名称
     */
    @TableField("client_name")
    private String clientName;

    /**
     * 计划开始时间
     */
    @TableField("start_date")
    private LocalDateTime startDate;

    /**
     * 计划完成时间
     */
    @TableField("request_date")
    private LocalDateTime requestDate;

    /**
     * 实际完成时间
     */
    @TableField("finish_date")
    private LocalDateTime finishDate;

    /**
     * 父工单
     */
    @TableField("parent_id")
    private Long parentId;

    /**
     * 所有父节点ID
     */
    @TableField("ancestors")
    private String ancestors;

    /**
     * 单据状态
     */
    @TableField("status")
    private String status;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 预留字段1
     */
    @TableField("attr1")
    private String attr1;

    /**
     * 预留字段2
     */
    @TableField("attr2")
    private String attr2;

    /**
     * 预留字段3
     */
    @TableField("attr3")
    private Integer attr3;

    /**
     * 预留字段4
     */
    @TableField("attr4")
    private Integer attr4;

    /**
     * 创建者
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 生效状态(0失效1生效)
     */
    @TableField("enable_flag")
    private String enableFlag;

    /**
     * 批次号
     */
    @TableField("batch_code")
    private String batchCode;

    /**
     * 工单类型
     */
    @TableField("workorder_type")
    private String workorderType;

    /**
     * 供应商id
     */
    @TableField("vendor_id")
    private Long vendorId;

    /**
     * 供应商编号
     */
    @TableField("vendor_code")
    private String vendorCode;

    /**
     * 供应商名称
     */
    @TableField("vendor_name")
    private String vendorName;

    /**
     * erp生产订单表主键
     */
    @TableField("erp_pro_id")
    private Long erpProId;

    /**
     * 完工存储仓库ID
     */
    @TableField("warehouse_id")
    private Long warehouseId;

    /**
     * 完工存储仓库编码
     */
    @TableField("warehouse_code")
    private String warehouseCode;

    /**
     * 完工存储仓库名称
     */
    @TableField("warehouse_name")
    private String warehouseName;

    /**
     * 删除标记
     */
    @TableField("deleted_flag")
    private String deletedFlag;

    /**
     * 同步时间
     */
    @TableField("schedule_time")
    private LocalDateTime scheduleTime;


}
